package com.jpro.module.infra.api.config;

import com.jpro.framework.common.pojo.CommonResult;
import com.jpro.module.infra.api.config.dto.FileConfigRespVO;
import com.jpro.module.infra.controller.admin.file.vo.config.FileConfigListReqVO;
import com.jpro.module.infra.convert.file.FileConfigConvert;
import com.jpro.module.infra.dal.dataobject.file.FileConfigDO;
import com.jpro.module.infra.framework.file.core.enums.FileStorageEnum;
import com.jpro.module.infra.service.file.FileConfigService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;

import static com.jpro.framework.common.pojo.CommonResult.success;

@RestController // 提供 RESTful API 接口，给 Feign 调用

@Validated
public class FileConfigApiImpl implements FileConfigApi {
    @Resource
    private FileConfigService fileConfigService;

    @Override
    public CommonResult<FileConfigRespVO> getFileConfig(Long id) {
        FileConfigDO fileConfig = fileConfigService.getFileConfig(id);
        final FileConfigRespVO fileConfigRespVO = FileConfigConvert.INSTANCE.convertForApi(fileConfig);
        System.out.println("fileConfigRespVO->" + fileConfigRespVO);
        return success(fileConfigRespVO);
    }

    @Override
    public CommonResult<List<FileConfigRespVO>> getStoreTplConfigs() {
        List<FileConfigDO> list = fileConfigService.getFileConfigList(tplSupportConfigStorage);
        return success(FileConfigConvert.INSTANCE.convertList(list));
    }

    private FileConfigListReqVO tplSupportConfigStorage = new FileConfigListReqVO().setStorages(
            Arrays.asList(FileStorageEnum.FTP.getStorage(), FileStorageEnum.LOCAL.getStorage()));
}
